﻿package mortal.game.view.rebate.data
{
    import Message.Game.*;
    import com.gengine.global.*;
    import mortal.game.cache.*;
    import mortal.game.manager.*;
    import mortal.game.resource.*;
    import mortal.game.view.rebate.*;

    public class RebateUtil extends Object
    {
        private static var testF:Boolean = false;
        public static var dayRechargeArr:Array = [500, 1000, 2000, 5000, 10000, 20000, 40000];

        public function RebateUtil()
        {
            return;
        }// end function

        public static function getType() : int
        {
            var _loc_1:* = Cache.instance.rebate.oneSevenType;
            if (_loc_1 == 0)
            {
                return 2;
            }
            return 1;
        }// end function

        public static function getTargetType() : int
        {
            var _loc_1:* = Cache.instance.rebate.oneSevenType;
            var _loc_2:* = Cache.instance.rebate.comOtherType;
            if (_loc_1 == 0)
            {
                return _loc_2;
            }
            return _loc_1;
        }// end function

        public static function getShopLeftTime() : Number
        {
            return 0;
        }// end function

        public static function getTodayLeftTime() : Number
        {
            return ClockManager.instance.todayLeftMillisecond / 1000;
        }// end function

        public static function getDayRechargeList() : Array
        {
            var _loc_6:int = 0;
            var _loc_7:Object = null;
            var _loc_1:* = getType();
            var _loc_2:* = getTargetType();
            var _loc_3:* = RebateConfig.instance().findDayRecharge(_loc_1, _loc_2);
            var _loc_4:Array = [];
            var _loc_5:Array = [];
            if (_loc_3)
            {
                _loc_5 = RebateConfig.instance().findRechargeByGroup(_loc_3.refundActiveId);
                _loc_6 = 0;
                while (_loc_6 < _loc_5.length)
                {
                    
                    _loc_7 = {};
                    _loc_7.index = _loc_6;
                    _loc_7.giftBag = _loc_5[_loc_6].giftCode;
                    _loc_7.returnTimes = _loc_5[_loc_6].returnTimes;
                    _loc_4.push(_loc_7);
                    _loc_6++;
                }
            }
            return _loc_4;
        }// end function

        public static function isOpenSevenDayOpen() : Boolean
        {
            var _loc_1:* = getType();
            if (_loc_1 == 1)
            {
                return true;
            }
            return false;
        }// end function

        public static function isShopOpen() : Boolean
        {
            if (RebateController.isShopOpen == false)
            {
                return false;
            }
            var _loc_1:Object = null;
            var _loc_2:* = RebateConfig.instance().targetArr;
            var _loc_3:* = getType();
            var _loc_4:* = getTargetType();
            var _loc_5:int = 0;
            while (_loc_5 < _loc_2.length)
            {
                
                _loc_1 = _loc_2[_loc_5];
                if (_loc_1.hasOwnProperty("shopId") == true && _loc_3 == _loc_1.type && _loc_4 == _loc_1.targetType)
                {
                    return true;
                }
                _loc_5++;
            }
            return false;
        }// end function

        public static function isDayTargetOpen() : Boolean
        {
            var _loc_1:Object = null;
            var _loc_2:* = RebateConfig.instance().targetArr;
            var _loc_3:* = getType();
            if (_loc_3 == 1)
            {
                return false;
            }
            var _loc_4:* = getTargetType();
            var _loc_5:int = 0;
            var _loc_6:int = 0;
            while (_loc_6 < _loc_2.length)
            {
                
                _loc_1 = _loc_2[_loc_6];
                if (_loc_1.hasOwnProperty("order") == false && _loc_3 == _loc_1.type && _loc_4 == _loc_1.targetType && _loc_1.hasOwnProperty("targetLevel") == true)
                {
                    _loc_5++;
                }
                _loc_6++;
            }
            if (_loc_5 > 5)
            {
                return true;
            }
            return false;
        }// end function

        public static function isOpenRedPacketPanel() : Boolean
        {
            if (Global.isDebugModle)
            {
                return true;
            }
            return ClockManager.instance.serverOpenDateNum <= 7;
        }// end function

        public static function getSevenDayRewardId() : int
        {
            var _loc_1:Object = null;
            var _loc_2:* = RebateConfig.instance().targetArr;
            var _loc_3:* = getType();
            var _loc_4:* = getTargetType();
            var _loc_5:int = 0;
            while (_loc_5 < _loc_2.length)
            {
                
                _loc_1 = _loc_2[_loc_5];
                if (_loc_1.hasOwnProperty("order") == false && _loc_3 == _loc_1.type && _loc_4 == _loc_1.targetType && _loc_1.hasOwnProperty("targetLevel") == true)
                {
                    return _loc_1.id;
                }
                _loc_5++;
            }
            return 0;
        }// end function

        public static function isSevenDayRewardById(param1:int) : Boolean
        {
            var _loc_2:Object = null;
            var _loc_3:* = RebateConfig.instance().targetArr;
            var _loc_4:int = 0;
            while (_loc_4 < _loc_3.length)
            {
                
                _loc_2 = _loc_3[_loc_4];
                if (param1 == _loc_2.hasOwnProperty("id") && _loc_2.hasOwnProperty("order") == false && _loc_2.hasOwnProperty("targetLevel") == true)
                {
                    return true;
                }
                _loc_4++;
            }
            return false;
        }// end function

        public static function isDayRechargeOpen() : Boolean
        {
            var _loc_1:Object = null;
            var _loc_2:* = RebateConfig.instance().targetArr;
            var _loc_3:* = getType();
            var _loc_4:* = getTargetType();
            var _loc_5:int = 0;
            while (_loc_5 < _loc_2.length)
            {
                
                _loc_1 = _loc_2[_loc_5];
                if (_loc_1.hasOwnProperty("refundActiveId") == true && _loc_3 == _loc_1.type && _loc_4 == _loc_1.targetType)
                {
                    return true;
                }
                _loc_5++;
            }
            return false;
        }// end function

        public static function getDayTargetList() : Array
        {
            var _loc_1:Array = [];
            var _loc_2:Object = null;
            var _loc_3:* = RebateConfig.instance().targetArr;
            var _loc_4:* = getType();
            var _loc_5:* = getTargetType();
            var _loc_6:int = 0;
            while (_loc_6 < _loc_3.length)
            {
                
                _loc_2 = _loc_3[_loc_6];
                if (_loc_2.hasOwnProperty("order") == false && _loc_4 == _loc_2.type && _loc_5 == _loc_2.targetType && _loc_2.hasOwnProperty("targetLevel") == true && checkInDate(_loc_2))
                {
                    _loc_1.push(_loc_2);
                }
                _loc_6++;
            }
            _loc_1.sortOn("targetLevel", Array.NUMERIC);
            return _loc_1;
        }// end function

        public static function isActionOpen(param1:int) : Boolean
        {
            var _loc_2:int = 0;
            if (Cache.instance.rebate.oneSevenType == 0 && Cache.instance.rebate.comOtherType == 0)
            {
                return false;
            }
            switch(param1)
            {
                case 1:
                {
                    _loc_2 = 73;
                    break;
                }
                case 2:
                {
                    _loc_2 = 74;
                    break;
                }
                case 3:
                {
                    _loc_2 = 75;
                    break;
                }
                default:
                {
                    break;
                }
            }
            var _loc_3:* = Cache.instance.role.entityInfo.level;
            if (_loc_3 < GameDefConfig.instance.getSystemOpenLevel(_loc_2))
            {
                return false;
            }
            return true;
        }// end function

        public static function getRwState(param1:int) : Array
        {
            var _loc_4:Object = null;
            var _loc_2:Array = [2, 0, 1];
            var _loc_3:* = RebateUtil.dayRechargeArr[param1];
            var _loc_5:* = getType();
            var _loc_6:* = getTargetType();
            var _loc_7:* = RebateConfig.instance().findDayRecharge(_loc_5, _loc_6);
            var _loc_8:Array = [];
            if (_loc_7)
            {
                _loc_4 = RebateConfig.instance().findRechargeByGroupAndMoney(_loc_7.refundActiveId, _loc_3);
                if (!_loc_4)
                {
                    return _loc_2;
                }
            }
            var _loc_9:* = _loc_4.returnTimes;
            if (Cache.instance.rebate.dayRechargeInfo == null)
            {
                return _loc_2;
            }
            var _loc_10:* = Cache.instance.rebate.dayRechargeInfo.recharge;
            var _loc_11:* = Cache.instance.rebate.dayRechargeInfo.rewardInfo[_loc_3];
            _loc_2[1] = _loc_11;
            _loc_2[2] = _loc_9;
            if (_loc_11 == _loc_9)
            {
                _loc_2[0] = 0;
            }
            else if (_loc_10 >= _loc_3 * (_loc_11 + 1))
            {
                _loc_2[0] = 1;
            }
            else
            {
                _loc_2[0] = 2;
            }
            return _loc_2;
        }// end function

        public static function getEveryDayFirstGiftCode() : int
        {
            var _loc_1:* = getType();
            var _loc_2:* = getTargetType();
            var _loc_3:* = RebateConfig.instance().findDayRecharge(_loc_1, _loc_2);
            if (_loc_3)
            {
                return _loc_3.firstGift;
            }
            return 0;
        }// end function

        public static function hasConsumRw() : Boolean
        {
            var _loc_6:int = 0;
            var _loc_1:* = Cache.instance.openServerSevenDay.consumRewardInfo;
            if (_loc_1 == null)
            {
                return false;
            }
            var _loc_2:* = _loc_1.getTimes;
            var _loc_3:* = _loc_1.consumNum;
            var _loc_4:* = Cache.instance.openServerSevenDay.comsumTotalNum;
            var _loc_5:* = Cache.instance.openServerSevenDay.comsumOneMoney;
            if (_loc_2 < _loc_4)
            {
                _loc_6 = (_loc_2 + 1) * _loc_5;
                if (_loc_3 >= _loc_6)
                {
                    return true;
                }
            }
            return false;
        }// end function

        public static function getTodayConsum() : int
        {
            var _loc_1:* = getType();
            var _loc_2:* = getTargetType();
            var _loc_3:* = RebateConfig.instance().findByType(_loc_1, _loc_2);
            if (_loc_3 && _loc_3.hasOwnProperty("consumptionGift"))
            {
                return _loc_3.consumptionGift;
            }
            return 0;
        }// end function

        public static function isInOpen8Day() : Boolean
        {
            var _loc_1:* = ClockManager.instance.serverOpenDateNum;
            if (_loc_1 >= 8 && _loc_1 <= 11)
            {
                return true;
            }
            return false;
        }// end function

        public static function checkInDate(param1:Object) : Boolean
        {
            if (isInOpen8Day())
            {
                if (param1.hasOwnProperty("limit") && param1["limit"] == 1)
                {
                    return true;
                }
            }
            else if (param1.hasOwnProperty("limit") == false || param1.hasOwnProperty("limit") && param1["limit"] == 0)
            {
                return true;
            }
            return false;
        }// end function

    }
}
